package com.wyp.design.principle.liskovsubstitution.example1;

/**
 * @author: yipeng.wang01@hand-china.com-25490
 * @TIME: 2019/12/26/11:20
 **/
public class Test {
    private static void resize(Rectangle rectangle) {
        while (rectangle.getWidth() <= rectangle.getLength()) {
            rectangle.setWidth(rectangle.getWidth() + 1);
            System.out.println("resize: width=" + rectangle.getWidth() + " length" + rectangle.getLength());
        }
        System.out.println("resize over！");
    }

    public static void main(String[] args) {
        //首先使用长方形
//        Rectangle rectangle = new Rectangle();
//        rectangle.setWidth(10);
//        rectangle.setLength(20);
//        resize(rectangle);
        /**
         * 使用长方形是父类，接下来使用子类，里氏替换原则要求，在继承过程中子类对象不能改变程序原有逻辑。
         */

        Rectangle square = new Square();
        ((Square) square).setWideLength(10);
        resize(square);
        /**
         * 执行发现程序处于死循环状态，这样已经影响了程序原有逻辑。
         */
    }
}
